﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using DevComponents.DotNetBar;
using Public;

namespace QLNhanKhau
{
    public partial class UCKhaiSinh : UserControl
    {
        public UCKhaiSinh()
        {
            InitializeComponent();
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {

        }

        private void btnTim_Click(object sender, EventArgs e)
        {
            if (txtSoSHK.Text == "")
            {
                MessageBox.Show("Nhập số sổ hộ khẩu cần tìm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            int SoSHK = int.Parse(txtSoSHK.Text);
            SoHoKhauPublic shk = SoHoKhauBLL.LoadSoHoKhauBySoSHK(SoSHK);
            if (shk == null)
            {
                txtDuong.Text = txtAp.Text = txtSoNha.Text = txtChuHo.Text = "";
                dgvNhanKhau.DataSource = null;
                groupBox1.Enabled = false;
                //groupBox2.Enabled = false;
                MessageBox.Show("Không tìm thấy!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            txtDuong.Text = shk.Duong;
            txtAp.Text = shk.KhuPho.ToString();
            txtSoNha.Text = shk.SoNha;

            List<NhanKhauPublic> list_nk = NhanKhauBLL.LoadNhanKhauByMaSHK(shk.MaSHK);

            
            //groupBox1.Enabled = true;
            //groupBox2.Enabled = true;
            txtChuHo.Text = list_nk.Find(item => item.MaQH == 1).HoTen;
            //txtChuHo.Text = list_nk.Where(item => item.QuanHe == "Chủ hộ").FirstOrDefault().HoTen;

            dgvNhanKhau.DataSource = list_nk;
            dgvNhanKhau.Columns[0].HeaderText = "Mã nhân khẩu";
            dgvNhanKhau.Columns[1].HeaderText = "Họ và tên";
            //dgvNhanKhau.Columns[3].HeaderText = "Tên gọi khác";
            dgvNhanKhau.Columns[4].HeaderText = "CMND";
            dgvNhanKhau.Columns[5].HeaderText = "Ngày sinh";
            dgvNhanKhau.Columns[6].HeaderText = "Giới tính";
            dgvNhanKhau.Columns[7].HeaderText = "Quê quán";
            dgvNhanKhau.Columns[8].HeaderText = "Dân tộc";
            dgvNhanKhau.Columns[9].HeaderText = "Nghề nghiệp";
            dgvNhanKhau.Columns[10].HeaderText = "Quốc tịch";
            //dgvNhanKhau.Columns[11].HeaderText = "Chứng tử";
            dgvNhanKhau.Columns[12].HeaderText = "Tôn giáo";
            dgvNhanKhau.Columns[13].HeaderText = "Trình độ";
            //dgvNhanKhau.Columns[14].HeaderText = "Sổ hộ khẩu";
            dgvNhanKhau.Columns[15].HeaderText = "Quan hệ";
            //dgvNhanKhau.Columns[0].Visible = false;
            //dgvNhanKhau.Columns[1].Visible = false;
            //dgvNhanKhau.Columns[2].Visible = false;
            dgvNhanKhau.Columns[3].Visible = false;
            //dgvNhanKhau.Columns[4].Visible = false;
            //dgvNhanKhau.Columns[5].Visible = false;
            //dgvNhanKhau.Columns[6].Visible = false;
            //dgvNhanKhau.Columns[7].Visible = false;
            dgvNhanKhau.Columns[8].Visible = false;
            //dgvNhanKhau.Columns[9].Visible = false;
            dgvNhanKhau.Columns[10].Visible = false;
            dgvNhanKhau.Columns[11].Visible = false;
            dgvNhanKhau.Columns[12].Visible = false;
            dgvNhanKhau.Columns[13].Visible = false;
            dgvNhanKhau.Columns[14].Visible = false;
            //dgvNhanKhau.Columns[15].Visible = false;

            cmbCanBoDangKiSHK.Text = NguoiDungBLL.LoadNguoiDungByMaND(shk.CanBoDangKi).HoTen;
            cmbNguoiNhanSHK.Text = NguoiDungBLL.LoadNguoiDungByMaND(shk.NguoiCap).HoTen;
            txtChucVuNguoiNhanSHK.Text = ChucVuBLL.LoadChucVuByMaCV(shk.ChucVuNguoiCap).TenChucVu;
            dateNgayNhapSHK.Value = (DateTime)shk.NgayCap;

        }

        private void dgvNhanKhau_SelectionChanged(object sender, EventArgs e)
        {
            //KhaiSinhBLL.
           DataGridViewCell cell = null;

            foreach (DataGridViewCell select in dgvNhanKhau.SelectedCells)
            {
                cell = select;
            }
            if (cell != null)
            {
                DataGridViewRow row = cell.OwningRow;

                txtHoTen.Text = (string)row.Cells[1].Value;
                txtCMND.Text = (string)row.Cells[4].Value;
                txtTenGoiKhac.Text = (string)row.Cells[3].Value;
                dateNgaySinh.Text = ((DateTime)row.Cells[5].Value).ToString();
                if ((bool)row.Cells[6].Value == true)
                    rdtGioiTinhNam.Checked = true;
                else
                    rdtGioiTinhNu.Checked = true;
                txtQueQuan.Text = (string)row.Cells[7].Value;
                cmbDanToc.Text = (DanTocBLL.GetDanTocByMaDT((byte)row.Cells[8].Value).TenDanToc).ToString();

                txtNgheNghiep.Text = (string)row.Cells[9].Value;
                cmbQuocTich.Text = (QuocTichBLL.GetQuocTichByMaQT((byte)row.Cells[10].Value).TenQuocTich).ToString();
                cmbTonGiao.Text = (TonGiaoBLL.GetTonGiaoByMaTG((byte)row.Cells[12].Value).TenTonGiao).ToString();
                cmbTrinhDo.Text = (TrinhDoBLL.GetTrinhDoByMaTD((byte)row.Cells[13].Value).TenTrinhDo).ToString();

                //txtMaCT.Text = ((int)row.Cells[0].Value).ToString();
                //txtMaCT.Enabled = false;
                //NhanKhauPublic nk=NhanKhauBLL.LoadNhanKhauByMaNK((int)row.Cells[0].Value);

                // load phần khai sinh
                if ((int)row.Cells[2].Value == 0)
                {
                    return;
                }
                else
                {
                    //MessageBox.Show("ges");
                    KhaiSinhPublic ks = KhaiSinhBLL.LoadKhaiSinhByMaKS((int)row.Cells[2].Value);
                    if (ks.SoKhaiSinh == 0)
                    {
                        txtNoiSinh.Text = ks.NoiSinh;
                    }
                    else
                    {
                        txtMaKS.Text = ks.MaKS.ToString();
                        txtSoKhaiSinh.Text = ks.SoKhaiSinh.ToString();
                        txtQuanHeChuHo.Text = QuanHeBLL.LoadQuanHeByMaQH((byte)row.Cells[15].Value).TenQuanHe;
                        //load hoten cha,load nhankhau bang mankc
                        NhanKhauPublic nkc = NhanKhauBLL.LoadNhanKhauByMaNK(ks.MaNKC);
                        txtHoTenCha.Text = nkc.HoTen;
                        
                        txtHoTenMe.Text = (string)NhanKhauBLL.LoadNhanKhauByMaNK(ks.MaNKM).HoTen;
                        txtNguoiDangKiKS.Text = ks.NguoiDangki;
                        txtNoiCapKS.Text =ThietLapBLL.LoadDiaChi();

                        txtQuanHeKS.Text = QuanHeBLL.LoadQuanHeByMaQH(ks.MaQH).TenQuanHe;
                        dateNgayCapKS.Text = ks.NgayCap.ToString();
                        txtCanBoHoTichKS.Text = NguoiDungBLL.LoadNguoiDungByMaND(ks.CanBoHoTich).HoTen;
                        txtChucVuNguoiCapKS.Text = ChucVuBLL.LoadChucVuByMaCV(ks.ChucVu).TenChucVu;
                        txtNguoiCapKS.Text = NguoiDungBLL.LoadNguoiDungByMaND(ks.NguoiCap).HoTen;

                        cmbCanBoDangKiKS.Text = NguoiDungBLL.LoadNguoiDungByMaND(ks.CanBoDangKi).HoTen;
                        cmbNguoiNhanKS.Text = NguoiDungBLL.LoadNguoiDungByMaND(ks.NguoiNhan).HoTen;
                        dateNgayNhapKS.Text = ks.NgayNhap.ToString();
                        txtChucVuNguoiNhanKS.Text = ChucVuBLL.LoadChucVuByMaCV(ks.ChucVuNguoiNhan).TenChucVu;
                    }
                }
                //load phần khai tử
                if ((int)row.Cells[11].Value != 0)
                {
                    //return;
                    KhaiTuPublic kt = KhaiTuBLL.LoadKhaiTuByMaKT((int)row.Cells[11].Value);
                    txtMaCT.Text = kt.MaKT.ToString();
                    txtSoChungTu.Text = kt.SoChungTu.ToString();
                    txtSoBaoTu.Text = kt.SoBaoTu.ToString();
                    txtNoiCapBaoTu.Text = kt.NoiCapBaoTu;
                    txtNgayCapBaoTu.Text = kt.NgayCapBaoTu.ToString();
                    txtNguoiKhaiTu.Text = kt.NguoiDangKi;
                    txtLyDoChet.Text = kt.LyDoChet;
                    txtThoiGianChet.Text = kt.NgayChet.ToString();
                    txtNoiChet.Text = kt.NoiChet;
                    txtNoiOCuoiCung.Text = kt.NoiOCuoiCung;
                    //load phần trong giấy
                    txtNguoiCapKT.Text = NguoiDungBLL.LoadNguoiDungByMaND(kt.NguoiCap).HoTen;
                    txtChucVuKT.Text = ChucVuBLL.LoadChucVuByMaCV(kt.ChucVu).TenChucVu;
                    txtNgayCapKT.Text = kt.NgayCapChungTu.ToString();
                    txtCanBoHoTichKT.Text = NguoiDungBLL.LoadNguoiDungByMaND(kt.CanBoHoTich).HoTen;
                    //load phần của phần mềm
                    cmbNguoiNhanKT.Text = NguoiDungBLL.LoadNguoiDungByMaND(kt.NguoiNhan).HoTen;
                    cmbCanBoDangKiKT.Text = NguoiDungBLL.LoadNguoiDungByMaND(kt.CanBoDangKi).HoTen;
                    dateNgayNhapKT.Value = kt.NgayNhap;
                    txtChucVuNguoiNhanKT.Text = NguoiDungBLL.LoadNguoiDungByMaND(kt.ChucVuNguoiNhan).HoTen;
                }
                //load phần chuyển khẩu
                List<ChuyenKhauPublic> list_cd = ChuyenKhauBLL.LoadChuyenKhauByMaNK((int)row.Cells[0].Value);
                dgvChuyenKhau.DataSource = list_cd;
                //dgvChuyenKhau.Columns[0].HeaderText = "Mã chuyển khẩu";
                //dgvChuyenKhau.Columns[1].HeaderText = "Mã nhân khẩu";

                dgvChuyenKhau.Columns[2].HeaderText = "Số chuyển khẩu";
                dgvChuyenKhau.Columns[3].HeaderText = "Số sổ hộ khẩu";
                dgvChuyenKhau.Columns[4].HeaderText = "Nơi chuyển";
                dgvChuyenKhau.Columns[5].HeaderText = "Lý do chuyển";
                dgvChuyenKhau.Columns[6].HeaderText = "Ngày cấp";
                //dgvChuyenKhau.Columns[7].HeaderText = "Cán bộ nơi chuyển";
                //dgvChuyenKhau.Columns[8].HeaderText = "Người cấp";
                //dgvChuyenKhau.Columns[9].HeaderText = "Chức vụ";
                //dgvChuyenKhau.Columns[10].HeaderText = "Nơi cấp";
                //dgvChuyenKhau.Columns[11].HeaderText = "Cán bộ nơi nhận";
                dgvChuyenKhau.Columns[12].HeaderText = "Ngày nhận";
                //dgvChuyenKhau.Columns[13].HeaderText = "Người nhận";
                //dgvChuyenKhau.Columns[14].HeaderText = "Chức vụ";
                dgvChuyenKhau.Columns[0].Visible = false;
                dgvChuyenKhau.Columns[1].Visible = false;
                //dgvChuyenKhau.Columns[2].Visible = false;
                //dgvChuyenKhau.Columns[3].Visible = false;
                //dgvChuyenKhau.Columns[4].Visible = false;
                //dgvChuyenKhau.Columns[5].Visible = false;
                //dgvChuyenKhau.Columns[6].Visible = false;
                dgvChuyenKhau.Columns[7].Visible = false;
                dgvChuyenKhau.Columns[8].Visible = false;
                dgvChuyenKhau.Columns[9].Visible = false;
                dgvChuyenKhau.Columns[10].Visible = false;
                dgvChuyenKhau.Columns[11].Visible = false;
                //dgvChuyenKhau.Columns[12].Visible = false;
                dgvChuyenKhau.Columns[13].Visible = false;
                dgvChuyenKhau.Columns[14].Visible = false;

            }

        }

        private void btnTimCaNhan_Click(object sender, EventArgs e)
        {
            if (txtCMND.Text == "")
            {
                MessageBox.Show("Nhập số CMND cần tìm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            string CMND = txtCMNDTim.Text;
            //int SoKS = int.Parse(txtSoKhaiSinhTim.Text);
            NhanKhauPublic nk = NhanKhauBLL.LoadNhanKhauByCMND(CMND);

            if (nk == null)
            {
                txtDuong.Text = txtAp.Text = txtSoNha.Text = txtChuHo.Text = "";
                dgvNhanKhau.DataSource = null;
                groupBox1.Enabled = false;
                groupBox2.Enabled = false;
                MessageBox.Show("Không tìm thấy!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            List<NhanKhauPublic> list_nk = NhanKhauBLL.LoadNhanKhauByMaSHK(nk.MaSHK);
            groupBox1.Enabled = true;
            groupBox2.Enabled = true;
            txtChuHo.Text = list_nk.Find(item => item.MaQH == 1).HoTen;
            txtChuHo.Text = list_nk.Where(item => item.MaQH == 1).FirstOrDefault().HoTen;

            dgvNhanKhau.DataSource = list_nk;
            dgvNhanKhau.Columns[0].HeaderText = "Mã nhân khẩu";
            dgvNhanKhau.Columns[1].HeaderText = "Họ và tên";
            //dgvNhanKhau.Columns[3].HeaderText = "Tên gọi khác";
            dgvNhanKhau.Columns[4].HeaderText = "CMND";
            dgvNhanKhau.Columns[5].HeaderText = "Ngày sinh";
            dgvNhanKhau.Columns[6].HeaderText = "Giới tính";
            dgvNhanKhau.Columns[7].HeaderText = "Quê quán";
            dgvNhanKhau.Columns[8].HeaderText = "Dân tộc";
            dgvNhanKhau.Columns[9].HeaderText = "Nghề nghiệp";
            dgvNhanKhau.Columns[10].HeaderText = "Quốc tịch";
            //dgvNhanKhau.Columns[11].HeaderText = "Chứng tử";
            dgvNhanKhau.Columns[12].HeaderText = "Tôn giáo";
            dgvNhanKhau.Columns[13].HeaderText = "Trình độ";
            dgvNhanKhau.Columns[14].HeaderText = "Sổ hộ khẩu";
            dgvNhanKhau.Columns[15].HeaderText = "Quan hệ";
            //dgvNhanKhau.Columns[0].Visible = false;
            //dgvNhanKhau.Columns[1].Visible = false;
            dgvNhanKhau.Columns[2].Visible = false;
            dgvNhanKhau.Columns[3].Visible = false;
            //dgvNhanKhau.Columns[4].Visible = false;
            //dgvNhanKhau.Columns[5].Visible = false;
            //dgvNhanKhau.Columns[6].Visible = false;
            //dgvNhanKhau.Columns[7].Visible = false;
            dgvNhanKhau.Columns[8].Visible = false;
            //dgvNhanKhau.Columns[9].Visible = false;
            dgvNhanKhau.Columns[10].Visible = false;
            dgvNhanKhau.Columns[11].Visible = false;
            dgvNhanKhau.Columns[12].Visible = false;
            dgvNhanKhau.Columns[13].Visible = false;
            dgvNhanKhau.Columns[14].Visible = false;
            //dgvNhanKhau.Columns[15].Visible = false;


            SoHoKhauPublic shk = SoHoKhauBLL.LoadSoHoKhauByMaSHK(nk.MaSHK);

            txtDuong.Text = shk.Duong;
            txtAp.Text = shk.KhuPho.ToString();
            txtSoNha.Text = shk.SoNha;
            txtSoSHK.Text = shk.SoSoHoKhau.ToString();
        }

        private void frmNhanKhau_Load(object sender, EventArgs e)
        {
            ////dgvChuyenKhau.Columns[0].HeaderText = "Mã chuyển khẩu";
            ////dgvChuyenKhau.Columns[1].HeaderText = "Mã nhân khẩu";

            //dgvChuyenKhau.Columns[2].HeaderText = "Số chuyển khẩu";
            //dgvChuyenKhau.Columns[3].HeaderText = "Số sổ hộ khẩu";
            //dgvChuyenKhau.Columns[4].HeaderText = "Nơi chuyển";
            //dgvChuyenKhau.Columns[5].HeaderText = "Lý do chuyển";
            //dgvChuyenKhau.Columns[6].HeaderText = "Ngày cấp";
            ////dgvChuyenKhau.Columns[7].HeaderText = "Cán bộ nơi chuyển";
            ////dgvChuyenKhau.Columns[8].HeaderText = "Người cấp";
            ////dgvChuyenKhau.Columns[9].HeaderText = "Chức vụ";
            ////dgvChuyenKhau.Columns[10].HeaderText = "Nơi cấp";
            ////dgvChuyenKhau.Columns[11].HeaderText = "Cán bộ nơi nhận";
            //dgvChuyenKhau.Columns[12].HeaderText = "Ngày nhận";
            ////dgvChuyenKhau.Columns[13].HeaderText = "Người nhận";
            ////dgvChuyenKhau.Columns[14].HeaderText = "Chức vụ";
            //dgvChuyenKhau.Columns[0].Visible = false;
            //dgvChuyenKhau.Columns[1].Visible = false;
            ////dgvChuyenKhau.Columns[2].Visible = false;
            ////dgvChuyenKhau.Columns[3].Visible = false;
            ////dgvChuyenKhau.Columns[4].Visible = false;
            ////dgvChuyenKhau.Columns[5].Visible = false;
            ////dgvChuyenKhau.Columns[6].Visible = false;
            //dgvChuyenKhau.Columns[7].Visible = false;
            //dgvChuyenKhau.Columns[8].Visible = false;
            //dgvChuyenKhau.Columns[9].Visible = false;
            //dgvChuyenKhau.Columns[10].Visible = false;
            //dgvChuyenKhau.Columns[11].Visible = false;
            ////dgvChuyenKhau.Columns[12].Visible = false;
            //dgvChuyenKhau.Columns[13].Visible = false;
            //dgvChuyenKhau.Columns[14].Visible = false;
            
        }

        private void txtSoSHK_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) || txtSoSHK.Text.Length > 7 && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtCMNDTim_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar) || txtCMNDTim.Text.Length > 7 && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }
    }
}

